package main

import "fmt"

func main() {
	// defer 在 main 函数结束之前调用，可以用来释放资源
	// 多个defer 执行顺序为 先进后出
	// 报错之后，之前进栈的defer 会执行，未进栈的不会执行
	defer fmt.Println("第一个进栈")
	defer fmt.Println("第二个进栈")
	test(0)
	defer fmt.Println("第三个进栈")
}

func test(x int) {
	fmt.Println(1 / x)
}
